package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.SysDataLineage;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 血缘关系Mapper接口
 * 
 * @author ruoyi
 */
@Mapper
public interface SysDataLineageMapper
{
    /**
     * 查询血缘关系
     * 
     * @param lineageId 血缘关系ID
     * @return 血缘关系
     */
    public SysDataLineage selectSysDataLineageById(Long lineageId);

    /**
     * 查询上游血缘
     * @param targetAssetId 下游资产ID
     * @return 血缘列表
     */
    public List<SysDataLineage> selectUpstreamLineage(Long targetAssetId);

    /**
     * 查询下游血缘
     * @param sourceAssetId 上游资产ID
     * @return 血缘列表
     */
    public List<SysDataLineage> selectDownstreamLineage(Long sourceAssetId);

    /**
     * 查询血缘关系列表
     * 
     * @param sysDataLineage 血缘关系
     * @return 血缘关系集合
     */
    public List<SysDataLineage> selectSysDataLineageList(SysDataLineage sysDataLineage);

    /**
     * 新增血缘关系
     * 
     * @param sysDataLineage 血缘关系
     * @return 结果
     */
    public int insertSysDataLineage(SysDataLineage sysDataLineage);

    /**
     * 修改血缘关系
     * 
     * @param sysDataLineage 血缘关系
     * @return 结果
     */
    public int updateSysDataLineage(SysDataLineage sysDataLineage);

    /**
     * 删除血缘关系
     * 
     * @param lineageId 血缘关系ID
     * @return 结果
     */
    public int deleteSysDataLineageById(Long lineageId);

    /**
     * 批量删除血缘关系
     * 
     * @param lineageIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteSysDataLineageByIds(Long[] lineageIds);

    int insertSysDataLineageSelective(SysDataLineage sysDataLineage);
}
